﻿/* Project:         CmdParamLib
 * Copyright:       Copyright (C) 2010, Rob Kennedy
 * Create Date:     2010-14-08 4:00 PM
 * Modified Date:   2010-14-08 4:00 PM
 * Comments:        2010-14-08 4:00 PM RK  Ignore SA1633
 *
 * This program is free software: you can redistribute it and/or modify 
 * it under the terms of the GNU General Public License as published by 
 * the Free Software Foundation, either version 3 of the License, or 
 * any later version. 
 * 
 * This program is distributed in the hope that it will be useful, 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
 * GNU General Public License for more details. 
 * 
 * You should have received a copy of the GNU General Public License 
 * along with this program. If not, see <http://www.gnu.org/licenses/>. 
 */
namespace CmdParamLib
{
    /// <summary>
    /// Represents a command line parameter and it's associated value
    /// </summary>
    public class CommandLineParameter
    {
        #region Private Properties
        /// <summary>
        /// Contains the parameter name
        /// </summary>
        private string parameterName;

        /// <summary>
        /// Contains the parameter value
        /// </summary>
        private object parameterValue;
        #endregion

        #region Public Constructors
        /// <summary>
        /// Initializes a new instance of the CommandLineParameter class
        /// </summary>
        public CommandLineParameter()
            : this(string.Empty, null)
        {
        }

        /// <summary>
        /// Initializes a new instance of the CommandLineParameter class
        /// </summary>
        /// <param name="parameterName">Contains the parameter name</param>
        /// <param name="parameterValue">Contains the parameter value</param>
        public CommandLineParameter(string parameterName, object parameterValue)
        {
            this.parameterName = parameterName;
            this.parameterValue = parameterValue;
        }
        #endregion

        #region Public Properties
        /// <summary>
        /// Gets or sets the parameter name
        /// </summary>
        public string Name
        {
            get 
            { 
                return this.parameterName; 
            }
            
            set 
            { 
                this.parameterName = value; 
            }
        }

        /// <summary>
        /// Gets or sets the parameter value
        /// </summary>
        public object Value
        {
            get
            {
                return this.parameterValue;
            }

            set
            {
                this.parameterValue = value;
            }
        }
        #endregion
    }
}
